package com.cmy.framework_utils

import java.text.SimpleDateFormat
import java.util.*

/**
 * @name:
 *  TimeUtil
 * @package:
 *  com.cmy.framework_utils
 * @date:
 *  2023/3/310:21
 * @author
 *    cmy
 * @description
 * 时间转化扩展函数，主要是处理时间格式问题
 */
sealed class TimeFormat(var format: String) {
    object yyyy_MM_dd:TimeFormat("yyyyMMdd")
    object yyyy_MM_dd_2:TimeFormat("yyyy/MM/dd")
    object yyyy_MM_dd_3:TimeFormat("yyyy MM dd")
    object yyyy_mm_dd:TimeFormat("yyyymmdd")
}


/**
 * 通过时间转化工具，实现将long类型数据转化为字符串标准格式
 *  (默认格式为yyyyMMdd)
 */
fun Long.dateTimeString(format:String = TimeFormat.yyyy_MM_dd.format):String{
    val date: Date = Date(this)
    val formatter = SimpleDateFormat(format, Locale.getDefault())
    return formatter.format(date)
}


/**
 * 将当前时间，转化为上午或者下午。起步是以对应格式为引入数据
 */
fun TimeFormat.beijingNowTimeString():String{
    val timezone = TimeZone.getTimeZone("Asia/Shanghai")
    val date = Date(System.currentTimeMillis())
    val formatter = SimpleDateFormat(this.format, Locale.getDefault())
    formatter.timeZone = timezone

    val gregorianCalendar = GregorianCalendar()
    gregorianCalendar.timeZone = timezone
    val prefix = if (gregorianCalendar[Calendar.AM_PM] == Calendar.AM) "上午" else "下午"

    return prefix + formatter.format(date)
}